package com.hyt.it.ogt.kq.service.gov.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hyt.it.ogt.kq.service.gov.model.dto.RegisterStatisticsDTO;
import com.hyt.it.ogt.kq.service.gov.model.entity.RegisterInfo;
import com.hyt.it.ogt.kq.service.gov.model.vo.RegisterVO;
import com.hyt.it.ogt.kq.service.gov.model.param.RegisterParam;
import com.hyt.model.PageParam;

import java.util.List;

/**
 * <p>
 * 注册信息表 Mapper 接口
 * </p>
 *
 * @author liuq
 * @since 2021-05-08
 */
public interface RegisterInfoMapper extends BaseMapper<RegisterInfo> {
	/**
	 * 查询考场注册分页数据
	 * @param pageParam
	 * @param param
	 * @return
	 */
	Page<RegisterVO> selectRegisterPage(PageParam<RegisterVO> pageParam, RegisterParam param);
	
	/**
	 * 查询考场注册总条数
	 * @param param 分页参数
	 * @return 考场注册总条数
	 */
	Integer countRegisterPage(RegisterParam param);
	
	/**
	 * 查询考场注册统计
	 * @param param 分页参数
	 * @return 考场注册统计数据
	 */
	List<RegisterStatisticsDTO> statistics(RegisterParam param);

	/**
	 * 根据考试任务编号和考场编号获取考场注册信息
	 * @param taskCode 考试任务编号
	 * @param roomCode 考场编号
	 * @return 考场注册信息
	 */
	RegisterInfo getByTaskAndRoomCode(String taskCode, String roomCode);

	/**
	 * 导出考场注册数据
	 * @param param 分页参数
	 * @return 考场注册分页数据
	 */
	List<RegisterVO> export(RegisterParam param);

	/**
	 * 当前监考机是否已注册其他考场
	 * @param taskCode 考试任务编号
	 * @param mac 当前监考机mac地址
	 * @return true：已注册其他考场，false：未注册其他考场
	 */
	Boolean monitorRegistered(String taskCode, String mac);

}
